.TH "/media/store/Informatica/C_C++/Projects_Linux/TorTella_gnu/src/gui.c" 3 "19 Jun 2008" "Version 0.1" "TorTella" \" -*- nroff -*-
.ad l
.nh
.SH NAME
/media/store/Informatica/C_C++/Projects_Linux/TorTella_gnu/src/gui.c \- 
.SH SYNOPSIS
.br
.PP
\fC#include 'gui.h'\fP
.br

.SS "Funzioni"

.in +1c
.ti -1c
.RI "gint \fBgui_close_window_event\fP (GtkWidget *widget, gpointer gdata)"
.br
.RI "\fIThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. \fP"
.ti -1c
.RI "void \fBgui_close_event\fP (GtkWidget *widget, gpointer gdata)"
.br
.RI "\fIConsente l'uscita corretta dal programma, invia un messaggio di BYE e effettua il leave da ogni \fBchat\fP a cui si e' connessi, infine chiama la controller_exit e termina l'interfaccia grafica. \fP"
.ti -1c
.RI "gint \fBgui_leave_chat_event\fP (GtkWidget *widget, gpointer gdata)"
.br
.RI "\fIInvocata quando viene chiusa la \fBchat\fP, effettua la chiamata al controller per fargli gestire l'invio dei pacchetti di tipo LEAVE. \fP"
.ti -1c
.RI "gint \fBgui_leave_pm_event\fP (GtkWidget *widget, gpointer gdata)"
.br
.RI "\fIChiude la finestra relativa ad una conversazione privata e la rimuove dalla hashtable. \fP"
.ti -1c
.RI "gint \fBgui_add_chat\fP (\fBu_int8\fP chat_id, char *chat_name)"
.br
.RI "\fIAggiunge una \fBchat\fP alla lista delle \fBchat\fP in seguito ad una ricerca che ha prodotto risultati validi. \fP"
.ti -1c
.RI "gint \fBgui_add_user_to_chat\fP (\fBu_int8\fP chat_id, \fBu_int8\fP id, char *user, \fBu_int1\fP status)"
.br
.RI "\fIAggiunge una utente alla \fBchat\fP, effettuando un controllo su eventuali duplicati in modo da poterli scartare. \fP"
.ti -1c
.RI "gint \fBgui_del_user_from_chat\fP (\fBu_int8\fP chat_id, \fBu_int8\fP user_id)"
.br
.RI "\fIScorre la lista degli utenti connessi fino a quando non viene trovato l'id dell'utente da eliminare, dopo di che questo viene eliminato. \fP"
.ti -1c
.RI "gint \fBgui_change_status\fP (\fBu_int8\fP user_id, char *status)"
.br
.RI "\fIScorre la lista degli utenti connessi fino a quando non viene trovato il record da aggiornare, dopo di che viene aggiornato il campo status. \fP"
.ti -1c
.RI "gint \fBgui_clear_chat_list\fP ()"
.br
.RI "\fIEffettua un clear della lista delle \fBchat\fP. \fP"
.ti -1c
.RI "gint \fBgui_clear_buffer\fP (GtkTextView *widget)"
.br
.RI "\fIEffettua un clear della text view in cui vengono scritti i messaggi da inviare. \fP"
.ti -1c
.RI "gint \fBgui_add_message\fP (GtkTextView *widget, gchar *msg)"
.br
.RI "\fIAggiunge alla \fBchat\fP il messaggio appena inviato e aggiorna lo scrolling della finestra in modo che l'ultimo messaggio sia ben visibile. \fP"
.ti -1c
.RI "void \fBgui_open_chat_event\fP (GtkTreeView *treeview, GtkTreePath *\fBpath\fP, GtkTreeViewColumn *col, gpointer userdata)"
.br
.RI "\fIFunzione chiamata alla selezione di una \fBchat\fP, chiama il controller per gestire la connessione agli utenti della \fBchat\fP e l'invio della JOIN, inoltre lancia la finestra relativa alla \fBchat\fP. \fP"
.ti -1c
.RI "gint \fBgui_open_conversation_event\fP (GtkTreeView *treeview, GtkTreePath *\fBpath\fP, GtkTreeViewColumn *col, gpointer userdata)"
.br
.RI "\fIEvento che si scatena quando si effettua un doppio click su un utente della \fBchat\fP. \fP"
.ti -1c
.RI "gint \fBgui_open_about_event\fP (GtkWidget *widget, gpointer gdata)"
.br
.RI "\fIEvento che permette di aprire la finestra relativa all'about. \fP"
.ti -1c
.RI "gint \fBgui_set_to_online_event\fP (GtkWidget *widget, gpointer gdata)"
.br
.RI "\fISetta lo stato dell'utente su Online e invoca il controller_change_status in modo che quest'ultimo possa inviare un pacchetto di PING con il nuovo status. \fP"
.ti -1c
.RI "gint \fBgui_set_to_busy_event\fP (GtkWidget *widget, gpointer gdata)"
.br
.RI "\fISetta lo stato dell'utente su Busy e invoca il controller_change_status in modo che quest'ultimo possa inviare un pacchetto di PING con il nuovo status. \fP"
.ti -1c
.RI "gint \fBgui_set_to_away_event\fP (GtkWidget *widget, gpointer gdata)"
.br
.RI "\fISetta lo stato dell'utente su Away e invoca il controller_change_status in modo che quest'ultimo possa inviare un pacchetto di PING con il nuovo status. \fP"
.ti -1c
.RI "gint \fBgui_search_chat_event\fP (GtkWidget *widget, gpointer gdata)"
.br
.RI "\fIEvento che si scatena alla pressione del bottone search, effettua un clear della lista delle \fBchat\fP e invoca il controller_search in modo che quest'ultimo possa inviare il pacchetto di SEARCH. \fP"
.ti -1c
.RI "gint \fBgui_create_chat_button\fP (GtkWidget *widget, gpointer gdata)"
.br
.RI "\fIEvento che si scatena alla pressione del bottone create, fa' una semplice chiamata alla controller_create. \fP"
.ti -1c
.RI "gint \fBgui_send_text_message_event\fP (GtkWidget *widget, GdkEventKey *event, gpointer gdata)"
.br
.RI "\fIPrepara il corpo del messaggio da inviare a tutta la \fBchat\fP o a un sottoinsieme di questa, dopo di che invoca il controller affinche' questo gestisca l'invio del messaggio e infine aggiorna la text view locale col nuovo messaggio. \fP"
.ti -1c
.RI "gint \fBgui_send_pm_message_event\fP (GtkWidget *widget, GdkEventKey *event, gpointer gdata)"
.br
.RI "\fICome la send_text_message_event, ma rivolta all'invio di messaggi privati. \fP"
.ti -1c
.RI "int \fBgui_add_msg_to_chat\fP (\fBu_int8\fP chat_id, char *msg)"
.br
.RI "\fIAggiunge alla text view della \fBchat\fP il nuovo messaggio. \fP"
.ti -1c
.RI "int \fBgui_add_msg_pm\fP (\fBu_int8\fP sender_id, char *msg)"
.br
.RI "\fIAggiunge alla text view della conversazione privata il nuovo messaggio. \fP"
.ti -1c
.RI "\fBtree_model\fP * \fBgui_get_tree_model\fP (\fBu_int8\fP chat_id)"
.br
.RI "\fIControlla nell'hashtable la presenza o meno del \fBtree_model\fP corrispondente alla \fBchat\fP. \fP"
.ti -1c
.RI "GtkWidget * \fBgui_create_users_list\fP (\fBu_int8\fP index)"
.br
.RI "\fICrea il componente grafico che contiene la lista degli utenti connessi ad una \fBchat\fP. \fP"
.ti -1c
.RI "GtkWidget * \fBgui_create_chat_list\fP (\fBu_int8\fP index)"
.br
.RI "\fICrea il componente grafico che contiene la lista delle \fBchat\fP trovate. \fP"
.ti -1c
.RI "GtkWidget * \fBgui_create_menu\fP ()"
.br
.RI "\fICrea la barra dei menu situata su ogni finestra. \fP"
.ti -1c
.RI "GtkWidget * \fBgui_create_text\fP (\fBu_int8\fP chat_id, int type, int msg_type)"
.br
.RI "\fICrea le varie text view (di scrittura e lettura) per la \fBchat\fP e per il pm, impostando i valori in modo opportuno. \fP"
.ti -1c
.RI "int \fBgui_open_chatroom\fP (\fBu_int8\fP chat_id)"
.br
.RI "\fICrea la finestra relativa ad una singola \fBchat\fP e assegna ai componenti gli eventi appropriati. \fP"
.ti -1c
.RI "int \fBgui_open_pm\fP (\fBu_int8\fP user_id, gchar *nickname)"
.br
.RI "\fICrea la finestra per una conversazione privata. \fP"
.ti -1c
.RI "GtkWidget * \fBgui_create_searchbar\fP (void)"
.br
.RI "\fICrea il componente grafico presente nella finestra iniziale in cui si puo' effettuare la creazione o la ricerca di una \fBchat\fP. \fP"
.ti -1c
.RI "\fBpm_data\fP * \fBgui_pm_data_get\fP (\fBu_int8\fP id)"
.br
.RI "\fIControlla nell'hashtable la presenza o meno della struct \fBpm_data\fP relativa all'id dell'utente. \fP"
.ti -1c
.RI "GList * \fBgui_get_chat_users\fP (\fBu_int8\fP chat_id)"
.br
.RI "\fIRecupera dal \fBtree_model\fP associato alla gui della \fBchat\fP la lista degli id degli utenti connessi. \fP"
.in -1c
.SH "Documentazione delle funzioni"
.PP 
.SS "gint gui_add_chat (\fBu_int8\fP chat_id, char * chat_name)"
.PP
Aggiunge una \fBchat\fP alla lista delle \fBchat\fP in seguito ad una ricerca che ha prodotto risultati validi. 
.PP

.PP
scorre la lista delle \fBchat\fP visualizzate
.PP
prepara i campi da inserire nel nuovo record
.PP
inserimento del record 
.PP
Definizione alla linea 71 del file gui.c.
.SS "gint gui_add_message (GtkTextView * widget, gchar * msg)"
.PP
Aggiunge alla \fBchat\fP il messaggio appena inviato e aggiorna lo scrolling della finestra in modo che l'ultimo messaggio sia ben visibile. 
.PP

.PP
inserisce data e nick dell'utente nel buffer, viene colorato di blue per differenziarlo dal messaggio vero e proprio.
.PP
inserimento del messaggio
.PP
Scrolling della finestra 
.PP
Definizione alla linea 296 del file gui.c.
.SS "int gui_add_msg_pm (\fBu_int8\fP sender_id, char * msg)"
.PP
Aggiunge alla text view della conversazione privata il nuovo messaggio. 
.PP

.PP
apertura della nuova conversazione privata nel caso questa non sia gia' presente 
.PP
Definizione alla linea 578 del file gui.c.
.SS "int gui_add_msg_to_chat (\fBu_int8\fP chat_id, char * msg)"
.PP
Aggiunge alla text view della \fBchat\fP il nuovo messaggio. 
.PP
Definizione alla linea 566 del file gui.c.
.SS "gint gui_add_user_to_chat (\fBu_int8\fP chat_id, \fBu_int8\fP id, char * user, \fBu_int1\fP status)"
.PP
Aggiunge una utente alla \fBchat\fP, effettuando un controllo su eventuali duplicati in modo da poterli scartare. 
.PP

.PP
controlla che sia presente almeno un utente
.PP
ciclo su tutti i record della lista
.PP
controllo che l'id non sia gia' presente
.PP
inserimento del nuovo record
.PP
nel caso non siano presenti altri utenti l'iteratore non e' valido, quindi si inserisce il primo record 
.PP
Definizione alla linea 107 del file gui.c.
.SS "gint gui_change_status (\fBu_int8\fP user_id, char * status)"
.PP
Scorre la lista degli utenti connessi fino a quando non viene trovato il record da aggiornare, dopo di che viene aggiornato il campo status. 
.PP

.PP
posizionamento dell'iteratore al primo record e successivo scorrimento della lista
.PP
trovato l'utente si aggiorna il campo status 
.PP
Definizione alla linea 233 del file gui.c.
.SS "gint gui_clear_buffer (GtkTextView * widget)"
.PP
Effettua un clear della text view in cui vengono scritti i messaggi da inviare. 
.PP
Viene invocata ogni volta che viene inviato un messaggio. 
.PP
Definizione alla linea 284 del file gui.c.
.SS "gint gui_clear_chat_list ()"
.PP
Effettua un clear della lista delle \fBchat\fP. 
.PP
Definizione alla linea 274 del file gui.c.
.SS "void gui_close_event (GtkWidget * widget, gpointer gdata)"
.PP
Consente l'uscita corretta dal programma, invia un messaggio di BYE e effettua il leave da ogni \fBchat\fP a cui si e' connessi, infine chiama la controller_exit e termina l'interfaccia grafica. 
.PP
Definizione alla linea 32 del file gui.c.
.SS "gint gui_close_window_event (GtkWidget * widget, gpointer gdata)"
.PP
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. 
.PP
FUNZIONI PER LA CREAZIONE DELLE GUI.
.PP
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details.
.PP
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA Provoca la semplice chiusura di una finestra 
.PP
Definizione alla linea 22 del file gui.c.
.SS "gint gui_create_chat_button (GtkWidget * widget, gpointer gdata)"
.PP
Evento che si scatena alla pressione del bottone create, fa' una semplice chiamata alla controller_create. 
.PP
Definizione alla linea 457 del file gui.c.
.SS "GtkWidget* gui_create_chat_list (\fBu_int8\fP index)"
.PP
Crea il componente grafico che contiene la lista delle \fBchat\fP trovate. 
.PP

.PP
crea una nuova scrolled window con lo scrolling abilitato solo se necessario
.PP
Definizione della tree view e dei sotto componenti
.PP
evento che si scatena al doppio click su un record della lista 
.PP
Definizione alla linea 671 del file gui.c.
.SS "GtkWidget* gui_create_menu (void)"
.PP
Crea la barra dei menu situata su ogni finestra. 
.PP
(File -- Status -- Help). 
.PP
-- Crea la menu bar --
.PP
---------------- Crea File menu items ------------------
.PP
-- Crea File submenu --
.PP
-- Crea un NEW menu item da collocare nel File submenu --
.PP
-- Crea un OPEN menu item da collocare nel File submenu --
.PP
-- Crea un Exit menu item da collocare nel File submenu --
.PP
---------------- Fine dichiarazione File menu ----------------
.PP
---------------- Crea Edit menu items --------------------
.PP
-- Crea submenu --
.PP
-- Crea Online menu item da collocare in Stato submenu --
.PP
-- Crea Busy menu item da collocare in Stato submenu --
.PP
-- Crea Away menu item da collocare in Stato submenu --
.PP
---------------- Fine dichiarazione Edit menu ----------------
.PP
---------------- Start Help menu ----------------
.PP
-- Crea Help submenu --
.PP
-- Crea About menu item da collocare in Help submenu --
.PP
---------------- Fine Help menu ---------------- 
.PP
Definizione alla linea 708 del file gui.c.
.SS "GtkWidget* gui_create_searchbar (void)"
.PP
Crea il componente grafico presente nella finestra iniziale in cui si puo' effettuare la creazione o la ricerca di una \fBchat\fP. 
.PP
Definizione alla linea 985 del file gui.c.
.SS "GtkWidget* gui_create_text (\fBu_int8\fP chat_id, int type, int msg_type)"
.PP
Crea le varie text view (di scrittura e lettura) per la \fBchat\fP e per il pm, impostando i valori in modo opportuno. 
.PP

.PP
creazione della scrolled window
.PP
da qui parte la differenziazione tra le text view relative alla \fBchat\fP e al pm con i relativi eventi, che si scatenano alla pressione di un tasto 
.PP
Definizione alla linea 795 del file gui.c.
.SS "GtkWidget* gui_create_users_list (\fBu_int8\fP index)"
.PP
Crea il componente grafico che contiene la lista degli utenti connessi ad una \fBchat\fP. 
.PP

.PP
crea una nuova scrolled window con lo scrolling abilitato solo se necessario
.PP
Definizione della tree view e dei sotto componenti
.PP
modalita' di selezione dei record della lista
.PP
evento che si scatena al doppio click su un record della lista 
.PP
Definizione alla linea 616 del file gui.c.
.SS "gint gui_del_user_from_chat (\fBu_int8\fP chat_id, \fBu_int8\fP user_id)"
.PP
Scorre la lista degli utenti connessi fino a quando non viene trovato l'id dell'utente da eliminare, dopo di che questo viene eliminato. 
.PP

.PP
posizionamento dell'iteratore al primo record e successivo scorrimento della lista
.PP
se l'utente e' presente lo si rimuove dalla lista 
.PP
Definizione alla linea 195 del file gui.c.
.SS "GList* gui_get_chat_users (\fBu_int8\fP chat_id)"
.PP
Recupera dal \fBtree_model\fP associato alla gui della \fBchat\fP la lista degli id degli utenti connessi. 
.PP
Definizione alla linea 1026 del file gui.c.
.SS "\fBtree_model\fP* gui_get_tree_model (\fBu_int8\fP chat_id)"
.PP
Controlla nell'hashtable la presenza o meno del \fBtree_model\fP corrispondente alla \fBchat\fP. 
.PP

.PP
PROVA 
.PP
Definizione alla linea 606 del file gui.c.
.SS "gint gui_leave_chat_event (GtkWidget * widget, gpointer gdata)"
.PP
Invocata quando viene chiusa la \fBchat\fP, effettua la chiamata al controller per fargli gestire l'invio dei pacchetti di tipo LEAVE. 
.PP
Definizione alla linea 44 del file gui.c.
.SS "gint gui_leave_pm_event (GtkWidget * widget, gpointer gdata)"
.PP
Chiude la finestra relativa ad una conversazione privata e la rimuove dalla hashtable. 
.PP
Definizione alla linea 56 del file gui.c.
.SS "gint gui_open_about_event (GtkWidget * widget, gpointer gdata)"
.PP
Evento che permette di aprire la finestra relativa all'about. 
.PP
Definizione alla linea 388 del file gui.c.
.SS "void gui_open_chat_event (GtkTreeView * treeview, GtkTreePath * path, GtkTreeViewColumn * col, gpointer userdata)"
.PP
Funzione chiamata alla selezione di una \fBchat\fP, chiama il controller per gestire la connessione agli utenti della \fBchat\fP e l'invio della JOIN, inoltre lancia la finestra relativa alla \fBchat\fP. 
.PP
Definizione alla linea 329 del file gui.c.
.SS "int gui_open_chatroom (\fBu_int8\fP chat_id)"
.PP
Crea la finestra relativa ad una singola \fBchat\fP e assegna ai componenti gli eventi appropriati. 
.PP

.PP
Crea i vari componenti
.PP
aggiunge i vari componenti ai box
.PP
aggiunge il vbox alla finestra principale
.PP
setta le caratteristiche della finestra
.PP
-- Display the widgets --
.PP
evento che si scatena alla chiusura della finestra 
.PP
Definizione alla linea 860 del file gui.c.
.SS "gint gui_open_conversation_event (GtkTreeView * treeview, GtkTreePath * path, GtkTreeViewColumn * col, gpointer userdata)"
.PP
Evento che si scatena quando si effettua un doppio click su un utente della \fBchat\fP. 
.PP
Permette di aprire una nuova finestra per una conversazione privata. 
.PP
Definizione alla linea 358 del file gui.c.
.SS "int gui_open_pm (\fBu_int8\fP user_id, gchar * nickname)"
.PP
Crea la finestra per una conversazione privata. 
.PP

.PP
-- Crea la nuova finestra e i vari componenti --
.PP
-- Aggiunge i componenti ai box --
.PP
-- Setta le caratteristiche della finestra --
.PP
-- evento che si scatena alla chiusura della finestra -- 
.PP
Definizione alla linea 928 del file gui.c.
.SS "\fBpm_data\fP* gui_pm_data_get (\fBu_int8\fP id)"
.PP
Controlla nell'hashtable la presenza o meno della struct \fBpm_data\fP relativa all'id dell'utente. 
.PP
Definizione alla linea 1015 del file gui.c.
.SS "gint gui_search_chat_event (GtkWidget * widget, gpointer gdata)"
.PP
Evento che si scatena alla pressione del bottone search, effettua un clear della lista delle \fBchat\fP e invoca il controller_search in modo che quest'ultimo possa inviare il pacchetto di SEARCH. 
.PP
Definizione alla linea 445 del file gui.c.
.SS "gint gui_send_pm_message_event (GtkWidget * widget, GdkEventKey * event, gpointer gdata)"
.PP
Come la send_text_message_event, ma rivolta all'invio di messaggi privati. 
.PP

.PP
se e' stato premuto il tasto invio, si sta inviando un messaggio
.PP
testo del messaggio contenuto nella text view
.PP
invio del messaggio tramite il controller
.PP
clear del buffer e preparazione del messaggio da aggiungere sulla gui 
.PP
Definizione alla linea 536 del file gui.c.
.SS "gint gui_send_text_message_event (GtkWidget * widget, GdkEventKey * event, gpointer gdata)"
.PP
Prepara il corpo del messaggio da inviare a tutta la \fBchat\fP o a un sottoinsieme di questa, dopo di che invoca il controller affinche' questo gestisca l'invio del messaggio e infine aggiorna la text view locale col nuovo messaggio. 
.PP

.PP
se e' stato premuto il tasto invio, si sta inviando un messaggio
.PP
testo del messaggio contenuto nella text view
.PP
Invio del messaggio ad un sottoinsieme di utenti
.PP
elenco degli utenti selezionati
.PP
si setta l'iteratore al primo record della lista
.PP
si scorre la lista degli utenti della \fBchat\fP e si confronta con gli utenti selezionati
.PP
Aggiungi alla lista di utenti a cui e' rivolto il messaggio
.PP
invio del messaggio tramite il controller
.PP
clear del buffer e preparazione del messaggio da aggiungere sulla gui
.PP
Fine dell'invio ad un sottoinsieme di utenti
.PP
invio del messaggio tramite il controller
.PP
clear del buffer e preparazione del messaggio da aggiungere sulla gui 
.PP
Definizione alla linea 466 del file gui.c.
.SS "gint gui_set_to_away_event (GtkWidget * widget, gpointer gdata)"
.PP
Setta lo stato dell'utente su Away e invoca il controller_change_status in modo che quest'ultimo possa inviare un pacchetto di PING con il nuovo status. 
.PP
Definizione alla linea 433 del file gui.c.
.SS "gint gui_set_to_busy_event (GtkWidget * widget, gpointer gdata)"
.PP
Setta lo stato dell'utente su Busy e invoca il controller_change_status in modo che quest'ultimo possa inviare un pacchetto di PING con il nuovo status. 
.PP
Definizione alla linea 422 del file gui.c.
.SS "gint gui_set_to_online_event (GtkWidget * widget, gpointer gdata)"
.PP
Setta lo stato dell'utente su Online e invoca il controller_change_status in modo che quest'ultimo possa inviare un pacchetto di PING con il nuovo status. 
.PP
Definizione alla linea 411 del file gui.c.
.SH "Autore"
.PP 
Generato automaticamente da Doxygen per TorTella a partire dal codice sorgente.
